package com.etoak.common.core.properties;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * 读取 upload-service.yml 中以 image 开头的配置项
 */
@Data
@Component // 将这个ImageProperties类注册为Spring容器中的一个Bean,Spring会自动创建这个类的实例并管理他的生命周期
/**
 * @ConfigurationProperties(prefix = "image")
 *                                 和上面的@Component一起使用表示该类成为Srping管理的配置类
 *                                 prefix表示只读取image开头的配置项
 */
@ConfigurationProperties(prefix = "image")
public class ImageProperties {
    /**
     * 上传目录
     */
    private String uploadDir;

    /**
     * 访问地址前缀
     */
    private String mapping;

    /**
     * 图片类型
     */
    private List<String> types;
}

/**
 *
 * 该类读的是下面在nacos中的upload-service中写的如下内容
 * image:
 * upload-dir: d:/upload/et2503
 * mapping: /pics
 * types:
 * - image/png
 * - image/jpeg
 */


/**
 * ImageProperties如何读取nacos配置？
 * 总结
ImageProperties 通过以下机制读取 Nacos 配置：
依赖注入：spring-cloud-starter-alibaba-nacos-config
配置导入：spring.config.import: nacos:upload-service.yml
属性绑定：@ConfigurationProperties(prefix = "image")
Bean 注册：@Component 自动注册到 Spring 容器
自动注入：其他组件通过 @Autowired 使用
 * 
 */